A computer system generally consists of several basic components, including a central processor, volatile and non-volatile memory, and various peripheral devices, including graphics controller(s), mass storage devices, network interface device(s), input/output devices, etc. The computer typically executes an operating system and one or more application programs. Starting the computer from a powered-down state is as simple as actuating a switch. The operating system usually loads automatically (during the “boot-up” process), and, afterwards, application programs may then be launched by the operating system or by the user. Shutting down a computer system generally entails exiting from all currently executing application programs and commanding the operating system to shut down. In most operating systems, a specific command to shut down the system is provided. Other computer systems may respond to the operation of a switch, or to a remote command received over a network. The shut down process is automatic, and, when each component of the computer system is functioning normally, application and operating system data contained within volatile memory (i.e., e.g., L1/L2/L3 caches, system RAM, etc.) may be transferred to non-volatile memory (i.e., e.g., FLASH RAM, a hard disk, etc.) as part of the process.
However, when a computer system component behaves in an anomalous manner, the shut down process may be interrupted and the system may fail to shut down, resulting in the ubiquitous “hung” computer. For example, when an application program is commanded to exit and fails to do so, the operating system may not be able to regain control of the processor. Consequently, the operating system may not be able to conclude the shut down process. Typically, the only recourse available to the user is to power down the system and attempt to restart the system from the powered-down state. Importantly, data that has not been saved from volatile memory to non-volatile memory will be permanently lost when the switch is flipped and power is removed. In other situations, an application or operating system component may “crash” or shut down “illegally,” causing the computer system to halt. Some operating systems display an information screen first before halting; in these systems, the only recourse is to power down the system, or operate a processor reset button. In any case, information that was stored in volatile memory is lost.
In some computer systems, one or more removable processor boards may be housed within a system chassis. In these systems, each processor board nay have one or more processors, along with supporting circuitry, and may function either independently of, or cooperatively with, one another. However, in many systems, a processor board may be removed from the chassis without powering down the entire system. And, in many instances, the processor board is removed without first shutting down the application software and operating system executing on the processor. Or, a processor board may be removed because the processor is “hung.” In either case, data that has not been saved from volatile memory on the processor board to non-volatile memory on the processor board, or, more generally, to global system memory, will be lost when the processor board is removed from the chassis.
Restarting the computer system after an interrupted shut down process may not be successful. For example, the operating system may become corrupted, i.e., critical information maintained by the operating system may not be correctly transferred from volatile memory to non-volatile memory. In this case, the operating system may fail to successfully instantiate during the subsequent start up process, thereby rendering the computer system, or processor board, inoperable. Similarly, critical, yet transient, application data may be lost, thereby corrupting other data maintained on permanent storage devices and preventing the application from subsequently restarting. However, if information relating to the cause of the malfunction, e.g., hardware, software, etc., is available during the restart process, a faster, and more confident, restart of the computer system may be facilitated.